home *** CD-ROM | disk | FTP | other *** search
- Jak ustawiµ drukarkΩ u┐ywaj▒c▒ AppleTalk
- Autor: Werner Eugster, eugster@giub.unibe.ch
- Wersja polska: Bartosz Maruszewski
- B.Maruszewski@zsmeie.torun.pl
- v1.01, 26 Lipca 1997
-
-
- Jako u┐ytkownik Linux-a chcesz mieµ dostΩp do drukarek Mac-a takich
- jak LaserWriter siedz▒cych na sieci z kontrolerem EtherTalk. Jako
- u┐ytkownik Mac-a chcesz mieµ dostΩp do wszystkich drukarek na Linux-
- ie. Aby ustawiµ taki serwis na Linux-ie musisz postΩpowaµ wed│ug tej
- samej procedury w obu przypadkach. Po skompilowaniu i zainstalowaniu
- oprogramowania AppleTalk netatalk (je╢li tego nie zrobi│e╢, to
- przeczytaj najpierw PodrΩcznik instalacji atalk <http://thehamp¡
- tons.com/anders/netatalk> napisany przez Andersa Brownwortha) pewnie
- ju┐ uruchomi│e╢ wszystkie demony poprzez rc.atalk w swoim katalogu
- /etc. Ale najpierw upewnij siΩ, ┐e serwis AppleTalk rzeczywi╢cie
- dzia│a zanim zaczniesz konfigurowaµ drukarki. Ja u┐ywam netatalk w
- wersji 1.3.3 z │atami opisanymi w Przewodniku instalacyjnym Andersa
- Brownwortha. Powiedziano mi, ┐e ╢cie┐ka do filtr≤w netatalk zmieni│a
- siΩ w nowszych wersjach.
-
- 1. Moja strefa AppleTalk.
-
-
- Napisz /usr/local/atalk/bin/getzones, aby sprawdziµ czy wszystkie
- strefy AppleTalk s▒ widziane przez Linux-a. Powiniene╢ widzieµ
- przynajmniej jedn▒ nazwΩ, kt≤ra jest twoj▒ stref▒ lokaln▒, w innym
- przypadku bardzo prawdopodobne jest, ┐e tw≤j serwis AppleTalk nie
- dzia│a poprawnie. Ja dostajΩ co╢ takiego (tylko kilka pierwszych
- linii):
-
-
- Pingo$ /usr/local/atalk/bin/getzones | more
- VLSB
- LSB-Integrative Biology
- LSB-Biology Library
- LSB-Herbaria
- LSB-UCMP
- LSB-MVZ
- Vanishing Packets
- MIP
- Barker Hall
-
-
-
- Przy pomocy opcji dowiesz siΩ kt≤ra jest twoj▒ stref▒:
-
-
- Pingo$ /usr/local/atalk/bin/getzones -m
- VLSB
- Pingo$
-
-
-
- Tak wiΩc moj▒ stref▒ lokaln▒ jest VLSB, kompletn▒ listΩ wszystkich
- lokalnych stref mo┐na uzyskaµ przy pomocy opcji -l (w razie gdy twoja
- drukarka nie jest w twojej strefie musisz znaµ dok│adn▒ nazwΩ strefy).
-
-
- 2. Dowiedz siΩ jaka jest nazwa drukarki.
-
-
- Je╢li chcesz tylko, aby lokalna drukarka UNIX-owa by│a dostΩpna dla
- klient≤w AppleShare, to przeskocz tΩ sekcjΩ i id╝ do ``sekcji nr 3''.
-
- Najpierw musimy siΩ dowiedzieµ jak s▒ zdefiniowane nazwy Internetowe w
- AppleTalk. Jest to bardzo podobne do tego co znasz ze swojego Linux-a.
- Nazwy wystΩpuj▒ w formie: objekt:typ@strefa. Je╢li nie zale┐y ci na
- nazwie strefy lokalnej to u┐yj @*.
-
- Tak wiΩc, aby znale╝µ wszystkie objekty w twojej strefie, napisz
- /usr/local/atalk/bin/nbplkup, co wypluje wielk▒ listΩ, z elementami
- jak ten:
-
-
- Pingo$ /usr/local/atalk/bin/nbplkup |more
- Sun ValleyUs Macintosh:Macintosh IIsi 12398.245:253
- Sun ValleyUs Macintosh:Workstation 12398.245:4
- IB Instructional Support: Power Macintosh 12398.196:253
- IB Instructional Support:Workstation 12398.196:4
- centris 660AV: Macintosh 12398.51:253
- centris 660AV:Workstation 12398.51:4
- Chapin Lab vx - JoeC:Macintosh IIvx 12398.101:253
- Chapin Lab vx - JoeC:Workstation 12398.101:4
- Pingo Mac Printer:LaserWriter 12398.164:129
- Pingo Default Printer:LaserWriter 12398.164:128
- Pingo:AFPServer 12398.164:130
- Pingo:netatalk 12398.164:4
- Pingo:Workstation 12398.164:4
- Lucicutia:AFPServer 12398.123:248
- Theobald Chapin, III:LaserWriter 12398.73:191
-
-
-
- Je╢li chcesz znaµ tylko objekty konkretnego typu jak LaserWriter,
- musisz u┐yµ /usr/local/atalk/bin/nbplkup :LaserWriter. Upewnij siΩ, ┐e
- wstawi│e╢ dwukropek, kt≤ry oznacza, ┐e chcesz znaµ tylko objekty typu
- LaserWriter. S│owo nie mo┐e zawieraµ du┐ych liter, ale nie mo┐esz
- omin▒µ spacji. Tak wiΩc, ┐eby zobaczyµ Macintosh IIvx musisz wstawiµ
- nazwΩ typu w cudzys│owia:
-
-
- Pingo$ /usr/local/atalk/bin/nbplkup :"Macintosh IIvx"
- Chapin Lab vx - JoeC:Macintosh IIvx 12398.101:253
- Pingo$
-
-
-
- Dobra. Kr≤tko: ChcΩ m≤c drukowaµ z mojego Linux-a na LaserWriter o
- nazwie Theobald Chapin, III. Zanim spr≤bujesz ustawiµ printcap dla
- kolejki tej drukarki, upewnij siΩ czy masz dostΩp do tej drukarki.
-
- Napisz /usr/local/atalk/bin/papstatus -p "Theobald Chapin, III"
- (zauwa┐, ┐e cudzys│owia s│u┐▒ tylko temu, aby poinformowaµ twoj▒
- pow│okΩ, i┐ Theobald Chaplin, III to jeden argument a nie trzy) i
- powiniene╢ otrzymaµ co╢ takiego:
-
-
- status: idle
-
-
-
- Je╢li nie, to sprawd╝ czy AppleTalk rzeczywi╢cie dzia│a (mo┐e demon
- nie jest uruchomiony ? Sprawd╝ tak: ps -xa | grep atalkd i ps -xa |
- grep afpd).
-
- Poniewa┐ LaserWriter spodziewa siΩ PostScriptu, powiniene╢ mieµ pod
- rΩk▒ kr≤tki plik testowy w PostScripcie. Nazwa mojego pliku to:
- test.eps i mogΩ go wys│aµ bezpo╢rednio do Theobald Chaplin, III
- uruchamiaj▒c klienta drukowania AppleShare:
-
- /usr/local/atalk/bin/pap -p "Theobald Chapin, III":LaserWriter@VLSB test.eps
-
-
-
- Zauwa┐, ┐e do│aczy│em nazwΩ strefy tylko po to, ┐eby siΩ upewniµ, ┐e
- wszystko dzia│a dobrze. Je╢li twoje zadanie drukowania siΩ pojawi (co
- sekundΩ - czy jako╢ tak - otrzymasz komunikat je╢li kto╢ inny u┐ywa
- drukarki w tym samym momencie. Obserwuj odpowied╝ twojej drukarki i co
- robi kiedy zacznie drukowaµ tw≤j plik).
-
- Je╢li bΩdziesz mia│ jakie╢ k│opoty, u┐yj aecho, aby sprawdziµ objekty
- AppleTalk w ten sam spos≤b jakby╢ u┐ywa│ ping-a przez TCP/IP (Ctrl-C
- zatrzymuje aecho):
-
-
- /usr/local/atalk/bin/aecho "Theobald Chapin, III":LaserWriter@VLSB
- 14 bytes from 12398.73: aep_seq=0. time=15. ms
- 14 bytes from 12398.73: aep_seq=1. time=14. ms
- 14 bytes from 12398.73: aep_seq=2. time=14. ms
- 14 bytes from 12398.73: aep_seq=3. time=14. ms
-
- ----12398.73 AEP Statistics----
- 5 packets sent, 4 packets received, 20% packet loss
- round-trip (ms) min/avg/max = 14/14/15
- Pingo$
-
-
-
- Powiniene╢ straciµ tylko ostatni pakiet przy przerwaniu Ctrl-C, w
- innym wypadku co╢ jest nie talk z twoim po│▒czeniem.
-
-
- 3. Ustawianie serwisu drukowania na Linux-ie.
-
-
- BΩd▒ dwa kroki. Najpierw upewnisz siΩ, ┐e mo┐esz drukowaµ na Linux-ie
- potem upewnisz siΩ, ┐e ta drukarka jest dostΩpna dla klient≤w
- AppleShare.
-
- M≤wi▒c ja╢niej: najpierw ustawisz swoj▒ drukarkΩ, ┐eby by│a dostΩpna
- dla UNIX-a (lpd - demona drukowania) (sekcja 3.1 do 3.2), a potem
- udostΩpnisz j▒ innym u┐ytkownikom w strefie AppleTalk (sekcja 3.3) co
- jest oczywi╢cie opcjonalne.
-
- Wielu ludzi nie lubi ustawiania z dw≤ch powod≤w:
- drukarka AppleTalk jest ju┐ dostepna w strefie AppleTalk, to
- u┐ytkownicy Mac-≤w mog▒ siΩ do niej bezpo╢rednio do│▒czyµ. WiΩc nie ma
- potrzeby istnienia kolejki na Linux-ie. Jednak ja jestem u┐ytkownikiem
- Linux-a i chcΩ mieµ dostΩp do tej drukarki i dlatego m≤j poni┐szy opis
- robi dok│adnie to: pozwala u┐ytkownikowi Linux-a na drukowanie na
- drukarce AplleTalk.
- jest drukark▒ lokaln▒ pod│▒czon▒ do r≤wnoleg│ego portu Linux-a (np.
- /dev/lp1), to jest kilka zmian w pliku /etc/printcap. Ja poka┐Ω
- przyk│ad ustawienia z drukark▒ lokaln▒, kt≤rego nie testowa│em, ale
- dosta│em od innego u┐ytkownika. Przeczytaj ``sekcjΩ 3.4'' na ten temat
- i sprawd╝ szczeg≤│owe informacje na temat u┐ywania Ghostscript-u razem
- z Netatalk <http://artoo.hitchcock.org/~flowerpt/projects/linux-
- netatalk/ghostscript.html> napisane przez Mike'a Pearsona i Billa
- McGonigle'a.
-
-
- 3.1. Konfiguracja twojego /etc/printcap.
-
-
- Je╢li twoja drukarka mo┐e ju┐ drukowaµ przy pomocy polecenia
-
- Pingo$ lpr -P lp test.eps
-
-
-
- to mo┐esz przeskoczyµ ten pierwszy krok.
-
- W innym przypadku sta± siΩ "root-em" i id╝ do katalogu /etc, ┐eby
- wyedytowaµ plik printcap. Szczeg≤│y znajdziesz na stronie podrΩcznika
- systemowego "man". Ja opiszΩ tylko jak ustawiµ LaseWriter, tak ┐eby
- dzia│a│ z poleceniem lpr z Linux-a.
-
- Dodaj pozycjΩ dla swojej drukarki do pliku printcap. Ja mam
- zdefiniowan▒ tylko LaserWriter i m≤j plik wygl▒da tak:
-
-
- lp|Pingo LaserWriter|Theobald Chapin, III:\
- :sd=/usr/spool/theobald:\
- :lp=/dev/null:\
- :pl#63:pw#85:\
- :mx#0:\
- :sh:sf:\
- :lf=/usr/adm/lpd-errs:\
- :if=/usr/local/bin/myif:\
- :of=/usr/local/atalk/etc/ofpap:
-
-
-
-
- 3.1.1. nazwa drukarki dla u┐ytkownik≤w Linux-a
-
-
- Pierwsza linia definiuje trzy logiczne nazwy, kt≤re nie musz▒ mieµ
- ┐adnego podobie±stwa do nazw, jakie chcesz nadaµ tej drukarce w
- kliencie AppleShare. Dlatego nazwa│em j▒ lp, poniewa┐ jest to nazwa
- stosowana w wiΩkszo╢ci UNIX-≤w. Inne nazwy stosujΩ tylko po to, ┐eby
- wiedzieµ co to w│a╢ciwie za drukarka.
-
-
- 3.1.2. katalog zada±
-
-
- Potem musisz mieµ katalog zada±, gdzie demon bΩdzie sk│adowa│ zadania.
- Ja nazwa│em sw≤j katalog zada± /usr/spool/theobald w tej samej
- hierarchii co katalog poczty.
-
-
- Pingo$ ls -l
- drwxrwxr-x 2 root mail 1024 Feb 8 08:46 mail
- drwxr-xr-x 2 root mail 2048 Feb 8 17:23 mqueue
- drwxrwxr-x 5 news news 1024 Sep 1 1994 news
- drwxrwxr-x 2 root lp 1024 Feb 9 13:15 theobald
-
-
-
- Stw≤rz go u┐ywaj▒c mkdir a potem ustaw w│a╢ciciela (root), grupΩ (lp)
-
-
- Pingo$ chown root.lp theobald
-
-
-
- i prawa dostΩpu
-
-
- Pingo$ chmod 775 theobald
-
- Potem stworzy│em dwa pliki: lock i status w tym katalogu:
-
-
- Pingo$ cd theobald
- Pingo$ touch lock; chown root.root lock; chmod 004 lock
- Pingo$ touch status; chown root.root status; chmod 664 status
-
-
-
- teraz mo┐esz zdefiniowaµ ten katalog jako katalog zada± jak ja to
- zrobi│em w linii 2.
-
-
- 3.1.3. urz▒dzenie drukarki
-
-
- Je╢li twoja drukarka jest lokaln▒ drukark▒ do│▒czon▒ do urz▒dzenia
- takiego jak/dev/lp1, to to jest urz▒dzenie, kt≤rego potrzebujesz.
- U┐yjesz mknod, aby utworzyµ to urz▒dzenie je╢li go jeszcze nie ma. Dla
- drukarki w AppleTalk nie chcesz w│a╢ciwie drukowaµ do ┐adnego
- urz▒dzenia, ale wys│aµ zadanie do tej drukarki u┐ywaj▒c programu pap z
- katalogu /usr/local/atalk/bin. Zrobi siΩ to przy pomocy filtra psf,
- kt≤ry uruchomi program pap, aby mieµ dostΩp do drukarki. Dlatego, po
- tym jak zadanie zosta│o wys│ane do LaserWriter, jest ono ci▒gle w
- Linux-ie, poniewa┐ demon drukowania lpd ma na samym ko±cu wys│aµ to
- zadania na urz▒dzenie. Dlatego zdefiniujemy urz▒dzenie /dev/null jako
- urz▒dzenie drukarki, kt≤re wy╢le twoje zadanie w pr≤┐niΩ (bo chcesz
- mieµ tylko to co siΩ pojawi│o na drukarce AppleTalk, prawda?). Dlatego
- w trzeciej linii wpiszemy :lp=/dev/null:\. Przeczytaj stronΩ
- podrΩcznika systemowego na temat psf, je╢li masz wiΩcej ni┐ jedn▒
- drukarkΩ AppleTalk i je╢li masz problemy z u┐ywaniem urz▒dzenia
- /dev/null jako urz▒dzenia drukarki.
-
-
- 3.1.4. rozmiar strony, maksymalny rozmiar pliku i nag│≤wek
-
-
- U┐yj p≤l pl i pw dla okre╢lenia d│ugo╢ci strony (linie) i szeroko╢ci
- (znaki). Polem mx mo┐esz zdefiniowaµ maksymalny rozmiar pliku
- drukowanego. Je╢li plik jest wiΩkszy, demon drukarki obetnie go, albo
- odm≤wi drukowania. Je╢li ustawisz tΩ warto╢µ na 0 (mx#0), oznacza to,
- i┐ mo┐na drukowaµ pliki o nieograniczonych rozmiarach. Uwa┐aj, bo
- przypadkowo papier mo┐e siΩ sko±czyµ je╢li nikt siΩ nie bΩdzie o to
- troszczyµ. A twoja g│odna drukarka bΩdzie wo│aµ o papier ! Tak wiΩc
- radzΩ nie ustawiaµ pola mx na 0 je╢li sko±czy│e╢ ju┐ testowaµ i
- wszystko jest w porz▒dku.
-
- Polem sh mo┐emy zabroniµ drukowania strony pocz▒tkowej (z
- identyfikatorem w│a╢ciciela itp.)
-
- Polem sf mo┐emy zabroniµ drukowania feed forms.
-
-
- 3.1.5. zapisywanie b│Ωd≤w
-
-
- Ja zdefiniowa│em do tego celu plik /usr/adm/lpd-errs. BΩdziesz musia│
- stworzyµ ten plik samemu (np. poleceniem touch /usr/adm/lpd-errs)
-
-
- 3.1.6. filtry
-
-
- To jest wa┐ne ! Jak ju┐ to opisa│em, twoje zadanie zostanie wys│ane do
- drukarki AppleTalk tylko je╢li zainstalujesz odpowiedni filtr, kt≤ry
- uruchomi program, pap. Pakiet netatalk u┐ywa konceptu hackerskiego,
- u┐ywaj▒c filtru psf, ale z r≤┐nymi do│▒czeniami do niego. psf
- analizuje nazwΩ tego do│▒czenia, aby dowiedzieµ siΩ, czy ma uruchomiµ
- pap je╢li pod│a±cuch jest w nazwie do│▒czenia, i odwr≤ciµ kolejno╢µ
- drukowania je╢li w nazwie jest rev. Sp≤jrz na to wydaj▒c polecenie:
-
-
- Pingo$ ls -l /usr/local/atalk/etc
- lrwxrwxrwx 1 root root 3 Feb 8 14:44 ifpap -> psf
- lrwxrwxrwx 1 root root 3 Feb 8 14:44 ifpaprev -> psf
- lrwxrwxrwx 1 root root 3 Feb 8 14:44 ofpap -> psf
- -rwxr-xr-x 1 root root 49299 Feb 8 14:44 papd
- -rw-r--r-- 1 root root 35 Feb 9 13:48 papd.conf
- -rwxr-xr-x 1 root root 11395 Feb 8 14:44 psf
- lrwxrwxrwx 1 root root 3 Feb 8 14:44 tfpap -> psf
- lrwxrwxrwx 1 root root 3 Feb 8 14:44 tfpaprev -> psf
- Pingo$
-
-
-
- Tak wiΩc filtr o nazwie ifpap uruchomi pap, ifpaprev odwr≤ci kolejno╢µ
- stron i uruchomi pap. Zamienia on zwyk│y tekst na PostScript, tak
- ┐eby╢ nie sko±czy│ na komunikacie z b│Ωdem.
-
- Jedyny filtr jaki musisz zainstalowaµ to of:
-
-
- :of=/usr/local/atalk/etc/ofpap:
-
-
-
- gdzie /usr/local/bin/myif jest prostym skryptem pow│oki, kt≤ry pozwala
- mi na przerywanie linii w tek╢cie, kt≤re zosta│y zapisane programem,
- kt≤ry automatycznie │amie linie (bp. textedit). Niestety filtr psf nie
- robi nic takiego i ignoruje ustawienia szeroko╢ci papieru. Ja
- napisa│em sw≤j w│asny filtr linebreak.c
- <http://www.giub.unibe.ch/~eugster/linebreak.c>, kt≤ry robi to dla
- mnie i umie╢µ nastΩpuj▒ce linie w "myif":
-
-
- #!/bin/sh
- /usr/local/bin/linebreak $* | /usr/local/atalk/etc/ifpap $*
-
-
-
- Je╢li w ten spos≤b ustawisz filtr tekstowy, to linbreak bΩdzie uwa┐a│
- tylko na szeroko╢µ strony (ustawion▒ pw), podczas gdy ifpap (psf)
- sprawdza tylko d│ugo╢µ. Wygl▒da na to, ┐e psf zak│ada, ┐e pierwsza
- linia to 0, tak wiΩc ustaw pl#63 je╢li chcesz mieµ 64 linii na
- stronie.
-
- Je╢li nie chcesz │amania linii, to po prostu umie╢µ liniΩ:
-
-
- :if=/usr/local/atalk/etc/ifpap:\
-
-
-
- Teraz zapisz sw≤j nowy printcap. Je╢li spr≤bujesz teraz co╢
- wydrukowaµ, dowiesz siΩ, ┐e jeszcze nie dzia│a, wiΩc czytaj nastΩpny
- paragraf.
-
- Jak wspomnia│em wcze╢niej, UNIX-owa nazwa drukarki w printcapie nie ma
- odpowiednika dla nazwy drukarki w AppleTalk. Musisz stworzyµ plik
- .paprc w swoim katalogu zada±, kt≤ry bΩdzie zawiera│ adres drukarki w
- AppleTalk. Jest to tylko jedna linia. Zauwa┐, ┐e nie musia│em
- umieszczaµ nazwy drukarki w cudzys│owia w tym pliku, ale inni pisz▒
- mi, ┐e u nich to dzia│a│o tylko z cydzys│owami. To spr≤buj najpierw
- bez cydzys│ow≤w:
-
-
- Pingo$ cat /usr/spool/theobald/.paprc
- Theobald Chapin, III:LaserWriter@VLSB
-
-
-
- To teraz mo┐esz zaczynaµ.
-
- Je╢li dostaniesz komunikat o b│Ωdzie jak np. "Turing:LaserWriter@Tech
- Support": NBP wtedy spr≤buj z cudzys│owami. Mo┐e byµ te┐ tak, ┐e
- musisz wstawiµ tylko nazwe przed dwukropkiem w cudzys│owa, tak:
- "Theobald Chapin, III":LaserWriter@VLSB. Je╢li masz jeszcze jakie╢
- problemy, to my╢l i kombinuj ;) NIe znam ┐adnego uniwersalnego sposobu
- na rozwi▒zanie tego problemu.
-
- WiΩcej na temat hackowania i r≤┐nych obej╢µ z filtrami znajdziesz w
- sekcji ``Znane problemy''.
-
-
- 3.2. Przetestuj drukarkΩ.
-
-
- Najpierw sprawd╝ czy demon drukarki jest rzeczywi╢cie uruchomiony:
-
-
- Pingo$ ps -xa | grep lpd
- 45 ? SW 0:00 (lpd)
- 346 pp0 D 0:00 grep lpd
- Pingo$
-
-
-
- Spr≤buj wydrukowaµ plik w PostScripcie i plik tekstowy, ┐eby siΩ
- przekonaµ, ┐e wszystko dzia│a. Przypuszczalnie musisz zrestartowaµ
- demona poleceniem lpc. Uruchom lpc i napisz restart lp, down lp i up
- lp. Potem sprawd╝ status:
-
-
- lpc> status
- lp:
- queuing is enabled
- printing is enabled
- no entries
- no daemon present
- lpc>
- lpc> quit
-
-
-
- Teraz wydrukuj sw≤j plik poleceniem
-
-
- Pingo$ lpr -P lp filename
-
-
-
- Je╢li wszystko jest w porz▒dku, to plik status w katalogu zada±
- powienien teraz zawieraµ naj╢wie┐sze informacje na temat twojej
- drukarki:
-
-
-
-
- Pingo$ cat /usr/spool/theobald/status
- job: Paul; status: busy; source: LocalTalk
- Pingo$
-
-
-
-
- 3.3. Skojarz tΩ drukarkΩ z jak▒╢ nazw▒ dla AppleTalk.
-
-
- Je╢li teraz p≤jdziesz do Mac-a i spr≤bujesz wybrac swoj▒ now▒ drukarkΩ
- dowiesz siΩ, ┐e poka┐e siΩ ona z nazw▒ twojego serwera Linux-owego. To
- mo┐e nie byµ zbyt zadowalaj▒ce, dlatego musisz stworzyµ, albo
- wyedytowaµ plik papd.conf w katalogu etc AppleTalk,
- /usr/local/atalk/etc/papd.conf (przeczytaj "man papd" je╢li chcesz
- znaµ wiΩcej szczeg≤│≤w). Minimum tego co musisz zrobiµ to umieszczenie
- w tym pliku nazwy jak▒ chcesz nadaµ drukarce, a na ko±cu dopisz :\ tak
- jak w printcap-ie. W drugiej linii podajesz nazwΩ jak▒ ta drukarka ma
- w Linux-ie opcj▒ pr. M≤j plik wygl▒da tak:
-
-
- Pingo$ cat /usr/local/atalk/etc/papd.conf
- Pingo Mac LaserWriter:\
- :pr=lp:
- Pingo$
-
-
-
- Oznacza to, ┐e (domy╢lna) zmienna lp zawiera nazwΩ: Pingo Mac
- LaserWriter dla klienta AppleShare. Dowiesz siΩ r≤wnie┐, ┐e teraz
- u┐ytkownik na Mac-u mo┐e drukowaµ bezpo╢rednio na drukarce Theobald
- Chaplin III jak i poprzez Linux-a, gdzie nazwa drukarki to Pingo Mac
- LaserWriter. Dla mnie jest wa┐ne, aby m≤c drukowaµ bezpo╢renio na tej
- drukarce, a podczas pracy na Mac-u drukowanie poprzez Linux-a wydaje
- siΩ o wiele szybsze, poniewa┐ Linux zkolejkuje zadanie i zniknie ono
- natychmiast z mojego desktopu.
-
- Je╢li chcesz zarejestrowaµ swoj▒ drukarkΩ w jakiej╢ strefie AppleTalk
- (nie w domy╢lnej strefie), po prostu podajesz tΩ strefΩ wraz z
- rozszerzeniem @nazwa_strefy w pliku papd.conf:
-
-
- MotorsLab@EEAP:\
- :pr=ee3rd:
-
-
-
-
- 3.4. Jaka jest r≤┐nica miΩdzy lokaln▒ drukark▒ pod│▒czon▒ do komput¡
- era Linux-owego?
-
-
- Ta sekcja nie jest jeszcze ca│kiem gotowa !!!
-
-
- /etc/princap:
- lp:lp=/dev/lp1:sd=/usr/spool/lp1:sh
-
- /usr/local/atalk/etc/papd.conf:
- HP LJIIIp:\
- :pr=lp:\
- :pd=/usr/local/atalk/etc/HP_LaserJet_IIIP.ppd:
-
-
-
-
- Sprawd╝ szczeg≤│y na stronie U┐ywanie ghostscript-a wraz z Netatalk
- <http://artoo.hitchcock.org/~flowerpt/projects/linux-
- netatalk/ghostscript.html>.
-
-
- 4. Rozwi▒zywanie problem≤w.
-
-
-
- 4.1. Og≤lna strategia.
-
-
- Je╢li masz jakie╢ problemy podczas drukowania, nawet je╢li dzia│a│o
- kiedy wszystko ustawia│e╢ tak jak opisa│em, to sp≤jrz do
- /usr/adm/mesaages (albo do /usr/log/messages albo /var/log/messages -
- przyp. t│um.) oraz do /usr/adm/syslog (patrz poprzednia uwaga). Je╢li
- tylko spr≤bujesz co╢ wydrukowaµ u┐ywaj▒c filtru psf, to znajdziesz
- podobne linie w wymienionych wy┐ej plikach:
-
-
- Feb 12 17:47:52 Pingo ofpap[1443]: starting for ?
- Feb 12 17:47:52 Pingo ofpap[1443]: sending to pap[1444]
- Feb 12 17:47:52 Pingo ofpap[1443]: straight text
- Feb 12 17:47:59 Pingo ofpap[1443]: 1444 done
- Feb 12 17:47:59 Pingo ofpap[1443]: pausing
- Feb 12 17:48:01 Pingo ifpap[1447]: starting for ?
- Feb 12 17:48:01 Pingo ifpap[1447]: sending to pap[1448]
- Feb 12 17:48:01 Pingo ifpap[1447]: straight text
- Feb 12 17:48:09 Pingo ifpap[1447]: 1448 done
- Feb 12 17:48:09 Pingo ofpap[1443]: restarting
- Feb 12 17:48:09 Pingo ifpap[1447]: done
- Feb 12 17:48:09 Pingo ofpap[1443]: done
- Feb 12 18:00:46 Pingo ofpap[1481]: starting for ?
- Feb 12 18:00:46 Pingo ofpap[1481]: sending to pap[1482]
- Feb 12 18:00:46 Pingo ofpap[1481]: straight text
- Feb 12 18:00:51 Pingo ofpap[1481]: 1482 done
- Feb 12 18:00:51 Pingo ofpap[1481]: pausing
- Feb 12 18:00:52 Pingo ifpap[1485]: starting for ?
- Feb 12 18:00:52 Pingo ifpap[1485]: sending to pap[1486]
- Feb 12 18:00:52 Pingo ifpap[1485]: straight text
- Feb 12 18:00:57 Pingo ifpap[1485]: 1486 done
- Feb 12 18:00:57 Pingo ofpap[1481]: restarting
- Feb 12 18:00:57 Pingo ofpap[1481]: done
- Feb 12 18:00:57 Pingo ifpap[1485]: done
-
-
-
- Je╢li co╢ nie dzia│a, otrzymasz komunikat w /usr/adm/syslog jak ten:
-
-
- Feb 12 10:04:59 Pingo papd[70]: No such printer: "lp"
- Feb 12 10:04:59 Pingo papd[70]: printcap problem: "lp"
-
-
-
- (twoja domy╢lna zmienna lp nie jest zdefiniowana)
-
-
- Feb 12 17:02:21 Pingo ofpap[1149]: 1150 died with 1
- Feb 12 17:02:21 Pingo lpd[1148]: lp: output filter died (1)
- Feb 12 17:02:26 Pingo lpd[1148]: lp: Daemon filter 'f' terminated (11)
- Feb 12 17:04:48 Pingo lpd[1195]: lp: Daemon filter 'f' terminated (11)
- Feb 12 17:08:03 Pingo lpd[1216]: lp: Daemon filter 'f' terminated (11)
- Feb 12 17:10:00 Pingo lpd[1228]: cannot execv /usr/local/bin/linebreak|/usr/local/atalk/ifpap
- Feb 12 17:11:51 Pingo lpd[1244]: /usr/adm/lpd-errs: No such file or directory
-
- (/etc/printcap nie akceptuje strumieni w definicji if; oto dlaczego
- u┐ywa│em skryptu /usr/local/bin/myif. Zapomnia│em tak┐e stworzyµ pliku
- /usr/adm/lpd-errs, kt≤ry zdefiniowa│em w /etc/printcap)
-
-
- 4.2. Nieznane problemy
-
-
- Najpierw przeczytaj sekcjΩ o ``Znanych problemach''. Je╢li nie
- bΩdzie tam nic pomocnego dla ciebie, to wy╢lij do mnie list i do│▒cz
- do niego pliki /etc/printcap oraz /usr/local/atalk/etc/papd.conf.
-
- nbplkup pokazuje nazwΩ drukarki i jej adres, ale ja nie dostajΩ ┐adnej
- odpowiedzi z programu papstatus od tej drukarki.
-
-
- 4.3. Znane problemy.
-
-
- DostajΩ du┐o list≤w od ludzi, kt≤rzy maj▒ problemy, wiΩc umieszczΩ
- tutaj rozwi▒zania dla wszystkich. BΩdzie to rosn▒ca, nieposortowana
- lista. Po prostu sprawd╝ czy tw≤j problem jest tu opisany.
-
-
- 4.3.1. nie ma wydruku zwyk│ego pliku tekstowego
-
-
- Sprawd╝ czy nie masz w pliku /usr/adm/lpd-errs czego╢ takiego:
-
-
- unprintable character (0x9a)!
-
-
-
- Jest to problem dotycz▒cy psf, filtru u┐ytego do drukowania.
- Zlokalizuj plik psf.c w swojej dystrybucji netatalk i uczy± go
- zapisywalnym
-
-
- chmod 644 psf.c
-
-
-
- Zlokalizuj drug▒ liniΩ, w kt≤rej jest │a±cuch unprintable character.
- Pierwsze wystapienie (z dw≤ch) powino byµ w linii 402 a drugie - w 496
- lub podobnie. Druga linia to jest przypuszczalnie ta, kt≤ra ci sprawia
- k│opoty. Zamie±
-
-
- if ( !isascii( *p ) || !isprint( *p )) {
- if ( !literal ) {
- fprintf( stderr, "unprintable character (0x%x)!\n",
- (unsigned char)*p );
- return( 2 ); /* Toss job */
- }
- printf( "\\%o", (unsigned)*p );
-
-
-
- na
-
-
-
-
-
-
- if ( !isascii( *p ) || !isprint( *p )) {
- if ( !literal ) {
- fprintf( stderr,
- "unprintable character (0x%x) converted to ?!\n",
- (unsigned char)*p );
- /* return( 2 );*/ /* Toss job */
- putchar( '?' ); /* Don't toss job! */
- }
- else{
- printf( "\\%o", (unsigned)*p );
- }
-
-
-
- Teraz napisz "make" w wierszu polece± w katalogu netatalk (nie w tym,
- w kt≤rym jest psf.c, bo make nie bΩdzie w tym przypadku zna│o ╢cie┐ki
- do pap !). Potem skopiuj nowe psf do odpowiedniego katalogu
- (/usr/local/atalk/etc).
-
- To co siΩ dzieje to: program zamienia niedrukowalny znak na znak "?" i
- nie przerywa pracy. Mo┐e kto╢ ma lepszy pomys│ na to jak
- przekonwertowaµ niedrukowalny znak na jego odpowiednik w PostScripcie
- ?
-
- Ale je╢li to bΩdziesz robi│, to uwa┐aj na prawa autorskie w psf !
-
-
- 4.3.2. nie ma umlaut≤w, ani znak≤w narodowych
-
-
- Jak w│a╢nie wy┐ej wspomnia│em, psf nie obs│uguje rozszerzonych zbior≤w
- znak≤w. Ale nenscript to potrafi. Ale poniewa┐ nie jest to filtr,
- kt≤ry m≤g│by zostaµ u┐yty bezpo╢rednio w printcap-ie, bΩdziesz musia│
- to obej╢µ. Ja mam zdefiniowan▒ dodatkow▒ drukarkΩ, kt≤ra obs│uguje
- zwyk│y tekst u┐ywaj▒c nenscriptu.
-
- /etc/printcap wygl▒da tak:
-
-
- #
- # Apple LaserPrinter Select 360 on AppleTalk:
- #
- lp|Pingo LaserWriter|Theobald Chapin, III:\
- :sd=/usr/spool/theobald:\
- :lp=/dev/null:\
- :pl#61:\
- :pw#80:\
- :mx#0:\
- :sh:\
- :sf:\
- :lf=/var/adm/lpd-errs:\
- :if=/usr/local/bin/myif:\
- :of=/usr/local/atalk/etc/ofpap:
- #
- # Special setup for plain text files, to convert to PostScript using nenscript
- # instead of psf (which doesn't process the whole ISO characterset)
- #
- text:\
- :sd=/usr/spool/textprinter:\
- :lp=/dev/null:\
- :mx#0:\
- :sh:\
- :sf:\
- :lf=/var/adm/lpd-errs:\
- :of=/usr/local/bin/textfilter:
-
- /usr/local/bin/textfilter jest skryptem w pow│oce:
-
-
- #!/bin/sh
- /usr/bin/nenscript -P lp -2 -r -T US -i "Werner Eugster"
-
-
-
- Niestety nie znalaz│em sposobu na zachowanie nazwy pliku do drukowania
- i dlatego u┐ywam opcji -i z moim nazwiskiem, ┐eby oznaczyµ wydruk.
- Mo┐e znajdziesz jaki╢ lepszy spos≤b u┐ywaj▒c np. Unix-owej zmiennej
- ╢rodowiskowej z loginem.
-
- W tym ustawieniu otrzymujΩ tekst na papierze w uk│adzie poziomym
- (opcja -r) w dw≤ch kolumnach (-2) wys│any na standardow▒ drukarkΩ lp.
- Aby wydrukowaµ zwyk│y plik tekstowy u┐ywam polecenia
-
-
- lpr -P text plain.txt
-
-
-
- Tak wiΩc przede wszystkim, drukarka zdefiniowana jako text zamienia
- zwyk│y tekstowy plik na PostScript u┐ywaj▒c nenscript (kt≤ry obs│uguje
- pe│en zestaw znak≤w ISO), ktory przekazuje go dalej do drukarki
- zdefiniowanej jako lp. Przez to, u┐ywaj▒c polecenia lpq zobaczysz, ┐e
- zadanie drukowania pojawi siΩ przy drukarce lp i przychodz▒cego ze
- standardowego wej╢cia, co jest poprawne.
-
- Je╢li kto╢ zna jaki╢ spos≤b, ┐eby umie╢ciµ na wydruku nazwΩ pliku, to
- bΩdΩ bardzo wdziΩczny za tΩ informacjΩ !
-
-
- 4.3.3. moje ustawienia d│ugo╢ci i szeroko╢ci strony sa ignorowane
-
-
- To by│ m≤j b│▒d. Sprawd╝ czΩ╢µ powy┐ej, gdzie opisujΩ myif. Musisz
- dodaµ $* dwa razy w drugiej linii w pliku, kt≤ra teraz wygl▒da tak:
-
-
- #!/bin/sh
- /usr/local/bin/linebreak $* | /usr/local/atalk/etc/ifpap $*
-
-
-
-
- 4.3.4. zadanie jest wys│ane do drukarki, ale nie zostaje wydrukowane
-
-
- Jest wiele takich problem≤w. Jeden, o kt≤rym dowiedzia│em siΩ od Paolo
- Supino to ten:
-
- "Podczas kr≤tkiej inspekcji wydruku z nbplkup (┐eby zobaczyµ czy s▒
- tak jakie╢ dziwne rzeczy), zobaczy│em, ┐e nasza drukarka na sieci ma
- ten sam numer co serwer NT (kt≤ry kolejkuje zadania z PC-t≤w). To by│o
- ╝le.
- 1. Serwer NT jest bardzo z│ym spoolerem.
- 2. Powinien on kolejkowaµ tylko maszyny Windows-owe.
- 3. Pomimo tego, i┐ nie mia│ on przechwytywaµ wszystkiego co przez
- niego przesz│o - on to robi│.
-
- Rozwi▒zanie: Wy│▒czyµ zupe│nie serwer drukowania dla Mac-≤w na NT.
- Wyedytowaµ plik .paprc w katalogu zada± tak, ┐eby wskazywa│ on
- bezpo╢rednio na drukarkΩ. Zrestartowaµ komputer, ┐eby mu siΩ pamiΩc
- od╢wie┐y│a.
-
- 4.3.5. moja drukarka nie bierze papieru z tego zasobnika, z kt≤rego
- ja chcΩ
-
-
- Domy╢lnie wszystko jest drukowane na papierze ze standardowego
- zasobnika. Je╢li chcesz tak ustawiµ drukarkΩ, aby bra│a papier z
- innego zasobnika ni┐ ze standardowego, to spr≤buj tego:
-
- Zmodyfikuj sw≤j plik /usr/local/bin/myif i przepu╢µ wszystko przez
- program awk, czy jaki╢ inny, kt≤ry potrafi zapisaµ dodatkow▒ liniΩ do
- strumienia po nag│≤wku.
- Np. Ja spr≤bowa│em tak:
-
-
- #!/bin/sh
- /usr/local/bin/linebreak $* | awk '{if(NR==1&&$1~"%!"){print;print
- "statusdict begin /manualfeed true store end\n";}else{print}}' | /usr/local/atalk/etc/ifpap $*
-
-
-
- (upewnij siΩ, ┐e nie ma fizycznych │ama± linii w linii drugiej).
- papier z podajnika rΩcznego. Dla innych podajnik≤w zamie± tekst w
- cuszys│owach ("statusdict begin /manualfeed true store end\n") na
- odpowiednie polecenie z tej listy:
-
-
- Podajnik | Polecenie PostScriptu
- ------------------+---------------------------------------------------
- przedni | "statusdict begin 0 setpapertray end"
- |
- tylny | "statusdict begin 1 setpapertray end"
- |
- automatyczny | "statusdict begin /manualfeed true store end"
-
-
-
- Polecenia PostScriptu do zdefiniowania wyj╢ciowych "szufladek":
-
-
- Szufladka | Polecenie PostScriptu
- ------------------+---------------------------------------------------
- g≤rna | "0 statusdict /setoutputtray get exec"
- |
- dolna | "1 statusdict /setoutputtray get exec"
-
-
-
- Oczywi╢cie je╢li chcesz zdefiniowaµ podajnik wej╢ciowy i szufladkΩ
- wyj╢ciow▒, to musisz wstawiµ dwie linie do pliku PostScriptowego.
-
- Chocia┐ to dzia│a dla wej╢cia, kt≤re ju┐ jest PostScriptem. Je╢li
- chcesz to osi▒gn▒µ dla tekstu, kt≤ry jest dopiero zamieniany na
- PostScript, to musisz zmodyfikowaµ plik psf.c i skompilowaµ nowy filtr
- psf. (nie zapomnij zainstalowaµ go w katalogu /usr/local/atalk/etc !).
- Wszystko co musisz zrobiµ, to znale╝µ liniΩ %%!PS-Adobe-2.0 (ok. linii
- 379, musi to byµ funkcja textps(). Dodaj now▒ liniΩ:
-
-
- printf( "statusdict begin /manualfeed true store end\n" );
-
-
-
- (i znowu - mo┐esz zamieniµ tekst w cudzys│owach na ten, kt≤ry ci
- odpowiada). Potem skompiluj ponownie psf i zainstaluj go.
-
-
- Davis Goodman sko±czy│ na takim skrypcie myif, kt≤ry sprawdza czy
- chcesz drukowaµ w rozmiarach listowych czy normalnych. Je╢li jest to
- normalny, to wykonywane jest polecenie PostScriptu powoduj▒ce wyb≤r
- tylnego podajnika, w innym przypadku papier pobierany jest z podajnika
- standardowego.
-
-
- #!/bin/sh
- bounding=`grep BoundingBox $8 | cut -d" " -f5 `
- if [ "$bounding" = "" ]; then
- /usr/bin/awk '{if(NR==1&&$1~"%!"){print;print "statusdict begin 1 setpapertray end\n";}else{print}}' | /usr/local/atalk/etc/ifpap $*
- else
- /usr/local/atalk/etc/ifpap $*
- fi
-
-
-
- To dzia│a z Netscape a twoje w│asne oprogramowanie mo┐e przyjmowaµ
- inne warto╢ci. Za│▒czy│em ten przyk│ad tylko po to, ┐eby ci wskazaµ,
- gdzie nale┐y zacz▒µ je╢li chcesz robiµ podobne sztuczki.
-
- Jeszcze jeden przyk│ad jest od Tomasa Pospiska, kt≤ry zdefiniowa│
- nazwy drukarek dla r≤┐nych podajnik≤w w tej samej drukarce w
- /etc/printcap. »eby wydrukowaµ na papierze z konkretnego podajnika
- wysy│asz zadanie na odpowiedni▒ drukarkΩ. Jego printcap wygl▒da tak:
-
-
- # LaserWriter Pro 630 (Default Tray)
- lp:\
- :sd=/usr/spool/lp1:\
- :lp=/dev/null:\
- :pl#63:pw#85:\
- :mx#0:\
- :sh:sf:\
- :lf=/var/log/lp-errs:\
- :if=/usr/lib/atalk/filters/myif:\
- :of=/usr/lib/atalk/filters/ofpap:
- #
- # LaserWriter Pro 630 (Manual Tray)
- lpm:\
- :sd=/usr/spool/lpm:\
- :lp=/dev/null:\
- :pl#63:pw#85:\
- :mx#0:\
- :sh:sf:\
- :lf=/var/log/lp-errs:\
- :if=/usr/lib/atalk/filters/myif_manual:\
- :of=/usr/lib/atalk/filters/ofpap:
-
-
-
- a filtr myif wygl▒da tak:
-
-
- #!/bin/sh
- /usr/bin/awk '{if(NR==1&&$1~"%!"){print;print "statusdict begin
- /manualfeed true store end\n";}else{print}}' |
- /usr/lib/atalk/filters/ifpap $*
-
-
-
- Jak dot▒d dosta│em konstruktywne komentarze i pytania od ludzi z
-
-
-
-
- COM domena 11
- EDU (USA) 12
- US domena (USA) 1
- GOV domena USA 2
- NET domena 1
-
- Australia 1
- Austria 2
- Belgia 1
- Francja 2
- Niemcy 5
- Islandia 1
- W│ochy 3
- Japonia 1
- Holandia 1
- Portugalia 2
- Wileka Brytania 1
- Szwajcaria 1
-
-
-
- (C) 13 Marca 1997 Werner Eugster (eugster@giub.unibe.ch)
-
-
- 5. Od t│umacza.
-
-
- T│umaczenie to jest chronione prawami autorskimi (C) Bartosza
- Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na
- prawach takich samych jak dokument oryginalny.
-
- Je╢li znalaz│e╢ jakie╢ ra┐▒ce b│Ωdy ortograficzne, gramatyczne,
- sk│adniowe, techniczne to pisz do mnie:
-
- B.Maruszewski@zsmeie.torun.pl
-
- Oficjaln▒ stron▒ t│umacze± HOWTO jest http://www.jtz.org.pl/
-
- Aktualne wersje przet│umaczonych dokument≤w znajduj▒ siΩ na tej┐e
- stronie. DostΩpne s▒ tak┐e poprzez anonimowe ftp pod adresem
- ftp.ippt.gov.pl w katalogu /pub/Linux/JTZ/.
-
- Przet│umaczone przeze mnie dokumenty znajduj▒ siΩ tak┐e na mojej
- stronie WWW. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> S▒
- tam te┐ odwo│ania do Polskiej Strony T│umaczeniowej.
-
- Kontakt z nasz▒ grup▒, grup▒ t│umaczy mo┐esz uzyskaµ poprzez listΩ
- dyskusyjn▒ jtz@ippt.gov.pl. Je╢li chcesz sie na ni▒ zapisaµ, to wy╢lij
- list o tre╢ci subscribe jtz ImiΩ Nazwisko na adres
- listproc@ippt.gov.pl
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-